1. Technical Field
The present invention relates generally to XML processing, and more particularly to self-parsing XML documents in order to improve XML document processing.
2. Discussion of Related Art
The eXtensible Markup Language (XML) is widely used in web services, messaging systems, databases, and document processing. XML provides a powerful and flexible tool for data exchange, and because XML documents are text-based they are relatively easy to read and thus use. However, XML documents are relatively verbose and large (e.g., file sizes greater than one gigabyte), and thus the processing of XML documents is often a performance bottleneck in computer systems and applications. Proposed solutions to these processing problems include upgraded hardware (e.g., faster processors) and software optimizations such as efficient parsers and file compression, however each of these attempted solutions has shortcomings. Streaming XML parsing is sometimes used to process large XML documents, however streaming parsers are generally limited in power and flexibility compared to other parsers (such as tree-based parsers) and provide only a limited view of the infoset state at one location at a time in the XML document.